#ifndef CHATWIDGET_H
#define CHATWIDGET_H

#include <QWidget>
#include <QString>

class MainWidget;

namespace Ui {
class ChatWidget;
}

class ChatWidget : public QWidget
{
    Q_OBJECT

public:
    explicit ChatWidget(const QString &uuid);
    ~ChatWidget();
    //收到消息
    void addNewMessage(const QString &message);
    //收到图片消息
    void addNewMessage(const QImage &image);
    //添加历史消息
    void addHistoryMessage(const QStringList &messageList);
private slots:
    void onBtnSendMessage();
    void onBtnSendFile();
    void onBtnSendImage();
protected:
    //重写closeEvent() 在其中发射redayClose()信号，由MainWidget接收处理
    void closeEvent(QCloseEvent * event);
signals:
    //发送消息信号
    void sendMessage(const QString &uuid, const QString &message);
    //发送文件信号
    void sendFile(const QString &uuid, const QString &fileName);
    //发送图片信号
    void sendImage(const QString &uuid, const QString &imagePath);
    //点击关闭按钮触发此信号
    void redayClose(const QString &uuid);

private:
    Ui::ChatWidget *ui;
    QString m_uuid;
};

#endif // CHATWIDGET_H
